- iPhone topik
- Xiaomi 13T és 13T Pro - nincs tétlenkedés
- Samsung Galaxy S23 Ultra - non plus ultra
- Samsung Galaxy S24 - nos, Exynos
- Vodafone mobilszolgáltatások
- Samsung Galaxy Watch6 Classic - tekerd!
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Yettel topik
- Garmin Instinct – küldetés teljesítve
- Realme GT 2 - aláírjuk
Hirdetés
-
The First Descendant - Napokon belül megkapjuk a megjelenési dátumot
gp Hamarosan vége a várakozásnak, reméljük a fejlesztők tartják magukat az ígéretükhöz.
-
Computex 2024: Minden a mesterséges intelligencia körül forog
ph A kiállítás fókuszát semmi sem mutatja jobban, hogy még a megnyitó zenéjét is AI szerezte
-
AI segítségével fociztak Genfben a robotok
it A Genfben rendezett AI for Good Global Summit alkalmából meg akarták mutatni, hogy az AI nem feltétlen egy hatalmas nagy dolog, kicsiben és hasznos újításokban is lehetne gondolkodni.
Új hozzászólás Aktív témák
-
K_Gabor
tag
válasz peter9228 #5001 üzenetére
Elégnek elég lenne,én megszokás miatt csináltam így.
Igen,ha do-while van akkor mindenképp bemegy egyszer a ciklusmagba,viszont ha elöltesztelős a ciklus while( feltetel){} akkor csak abban az esetben megy bele ha a feltétel igaz.Hirdetéseim: http://hardverapro.hu/tag/k_gabor_3#aprohirdetesei
-
metrion
aktív tag
Sziasztok!
Kétdimenziós tömb elemeit, hogy lehet csökkenőbe rendezni?
A növekvő megvan: static void Novekvo(int[,] t)
{
for (int x = 0; x < 5; x++)
{
for (int y = 0; y < 4; y++)
{
int min = y;
for (int i = y + 1; i < 5; i++)
if (t[x, i] < t[x, min])
min = i;
if (min != y)
{
int csere = t[x, min];
t[x, min] = t[x, y];
t[x, y] = csere;
}
}
}
}Ez kell csak fordítva?
-
metrion
aktív tag
válasz trisztan94 #5011 üzenetére
De ez nem kétdimenziós. :S Megpróbáltam de nem jött össze.
-
metrion
aktív tag
-
trisztan94
őstag
válasz metrion #5012 üzenetére
Ajánlom figyelmedbe Reiter István C# jegyzetét, abban benne vannak ezek elég érthető módon.
Azért leírom a maximum kiválasztás és kétdimenziós tömbök lényegét, elméleti alapon:
Van egy tömböd, legyen most kétdimenziós. Annak van x és y értéke. Az x a sorokat, az y az oszlopokat jelöli. A legcélszerűbb úgy haladni, hogy végigmész egy sor összes oszlopán, majd mész a következő sorra.
Tehát pl, ha a tömböd [5,5] nagyságú, akkor az azt jelenti, hogy 5 sor és 5 oszlop van benne. Kicsit olyasmi, mint az aknakereső felépítése, ott is sorokra és oszlopokra van felosztva a játéktér.
Na most azért kell neked 2 for ciklus, mert az egyikkel a sorokat, a másikkal pedig az oszlopokat lépteted. A külső ciklus a sorokat, a belső az oszlopokat.
for (int i = 0; i< 5; i++)
{
//ez a külső ciklusod.
for (int j = 0; j < 5; j++)
{
//ez a belső ciklusod
}
}Elkezdi a for ciklust, beállítja a sorszámot nullára, majd belép az első oszlopba a belső ciklussal, ott végrehajt egy műveletet, majd növeli a sorszámot egyel.
Na, így durván ennyi a kétdimenziós tömb lényege. Most vegyük át a maximum kiválasztást, ami baromi egyszerű. Az a lényeg, hogy megnézzük, hogy az oszlop értéke amiben vagyunk nagyobb-e a mi változónknál.
pl.
változónk értéke 100
itt a tömb, ahol tömb = [2,5], tehát 2 sor és 2 oszlop
1.sor
1. oszlop érték = 95. kisebb, mint 100, átugorjuk
2. oszlop érték 150. Nagyobb, mint 100, beálltjuk a változónk értékét erre az értékre (tehát változó = tömb[i,j])
3. oszlop érték 70. Nem nagyobb, átugorjuk
4. oszlop 1000. Nagyobb, berakjuk a változó értékének
5. oszlop 80 és ez így folytatódik tovább
2. sor
1. oszlop 50
2. oszlop 12
3. oszlop 06
4. oszlop 343
5. oszlop 34Tényleges kódban:
int tomb[,] = new int[2,5];
int max = 0;
for(int i = 0; i < 2; i++)
{
for (int j = 0; j < 5; j++)
{
if(max > tomb[i,j])
{
max = tomb[i,j];
}
}
}lehetnek benne elírások, de valahogy így néz ki.
Remélem mostmár világosabb
[ Szerkesztve ]
https://heureka-kreativ.hu
-
metrion
aktív tag
válasz trisztan94 #5015 üzenetére
Köszi, de holnapra kéne és nem tudok rájönni. Tuti valami apró hiba.
-
amargo
addikt
válasz metrion #5014 üzenetére
Látod ez is a megoldások között van. Szépen alakul ez, esetleg a dimenzió méretét lekérdezhetnéd a ciklus feltételekben, ugyan feltételezed, hogy ki van töltve a tömb, de erre nem tudjuk mi a garancia. Az első sor után visszatérsz a max-al, de persze a többit még nem nézted meg, de szerintem itt csak elnézted a { jelet
“The workdays are long and the weekend is short? Make a turn! Bike every day, bike to work too!”
-
trisztan94
őstag
válasz trisztan94 #5015 üzenetére
igen, elírtam a végén az if()-et.
Ha max KISEBB, mint TOMB[i,j], akkor adjuk a max értékének a tömb i.,j. elemét
https://heureka-kreativ.hu
-
metrion
aktív tag
válasz trisztan94 #5018 üzenetére
Kezdem feladni: static int Max(int[,] t, ref int max)
{
for (int x = 0; x < 5; x++)
{
for (int y = 0; y < 5; y++)
{
if (max > t[x, y])
{
max = t[x, y];
}
}
return max;
}
}
static void Main(string[] args)
{
int[,] t = new int[5, 5];
Random r = new Random();
Felt(t, r);
Kiir(t);
Console.WriteLine();
Console.WriteLine("A max: {0}", Max(ref max));
Kiir(t);
Console.ReadKey(); -
trisztan94
őstag
válasz metrion #5019 üzenetére
Első ránézésre: a ciklusokon kívülre rakd a return max-ot:
static int Max(int[,] t, ref int max)
{
for (int x = 0; x < 5; x++)
{
for (int y = 0; y < 5; y++)
{
if (max > t[x, y])
{
max = t[x, y];
}
}
}
return max;
}ha így sem jó, pakold fel a progit ide.
Ja és
if (max > t[x, y])
{
max = t[x, y];
}nem jó, helyette:
if (max < t[x, y])
{
max = t[x, y];
}Ugye ha nagyobb az elem, mint a max, akkor adjuk a max értékéül.
[ Szerkesztve ]
https://heureka-kreativ.hu
-
metrion
aktív tag
válasz trisztan94 #5020 üzenetére
Na már csak 1 hiba: Console.WriteLine("A max: {0}", Max(max));
Error 1 The name 'max' does not exist in the current context
-
trisztan94
őstag
válasz metrion #5021 üzenetére
A max nevű változó nem létezik az aktuális kontextusban, ergó nincs definiálva.
static void Main(string[] args)
{
int[,] t = new int[5, 5];
int max = 0;
Random r = new Random();
Felt(t, r);
Kiir(t);
Console.WriteLine();
Console.WriteLine("A max: {0}", Max(ref max));
Kiir(t);
Console.ReadKey();
}https://heureka-kreativ.hu
-
metrion
aktív tag
válasz trisztan94 #5022 üzenetére
Most ez: Error 1 No overload for method 'Max' takes 1 arguments
-
trisztan94
őstag
válasz metrion #5024 üzenetére
Na most vagy én vagyok nagyon fáradt, vagy te.
if (max > t[x, y])
{
max = t[x, y];
}Ez szavakkal leírva a következő:
HA max változó értéke NAGYOBB, mint az aktuálisan vizsgált tömbelem értéke
AKKOR
max értéke legyen az aktuálisan vizsgált tömbelem értékeTehát így sosem a legnagyobb lesz benne.
if (max < t[x, y])
{
max = t[x, y];
}Így ez lesz leírva:
HA max változó értéke KISEBB, mint az aktuálisan vizsgált tömbelem értéke
AKKOR
max értéke legyen az aktuálisan vizsgált tömbelem értékeMivel ha max kisebb, mint a vizsgált elem, így a nagyobb érték lesz a max értéke. Érted?
Ha így sem jó, akkor szvsz a program azon részével lesz gond, ahol feltöltöd a tömböt elemekkel.
[ Szerkesztve ]
https://heureka-kreativ.hu
-
metrion
aktív tag
válasz trisztan94 #5026 üzenetére
És tényleg, nagyon köszi, jól működik!
-
metrion
aktív tag
Sziasztok!
Ebbe tudnátok segíteni?
A lényeg, hogy kétdimenziós tömbbe nem lehet szám ismétlődés.
Egydimenziós tömbös verzió kész, de nem tudom, hogy kéne átírni 2D-re. :S
Random rnd = new Random();
int[] tomb = new int[5];
int i=0;
while(i<5)
{
tomb[i] = rnd.Next(10, 100);
int x = 0;
while ((x<=i)&&(tomb[x] != tomb[i]))
{
x++;
}
if (x == i)
{
i++;
}
}
for (i = 0; i < 5; i++)
{
Console.WriteLine(tomb[i]);
}
Console.ReadKey();
}
}
} -
trisztan94
őstag
válasz metrion #5029 üzenetére
Könyörgöm, pár hsz.-el korábban magyaráztam el a kétdimenziós tömbök lényeget és be is linkeltem egy könyvet amiben utánajárhatsz a dolgoknak..
Meg ne várd mar el, hogy az idehányt kódrészleteket megcsináljuk. Normális kérdés jó lenne.. Pontosan mi a probléma, mit nem tudsz? Az, hogy nem működik, segítsetek nem a legjobb fajta kérdés, ezt te is bevallhatod..
[ Szerkesztve ]
https://heureka-kreativ.hu
-
metrion
aktív tag
válasz trisztan94 #5030 üzenetére
Már megoldódott.
-
válasz metrion #5031 üzenetére
Csak a rend kedvéért, ilyen random feltöltős dolgokat nem így szokás megoldani, hanem egy kicsivel más technikával:
class Program
{
private const int Dim1 = 5;
private const int Dim2 = 5;
private const int Start = 10;
private static int CalculateNumberCollectionRangeLength()
{
return Dim1 * Dim2;
}
static void Main()
{
var numberCollection = Enumerable.Range(Start, CalculateNumberCollectionRangeLength()).ToList();
var random = new Random();
var table = new int[Dim1, Dim2];
for (var i = 0; i < Dim1; i++)
{
for (var j = 0; j < Dim2; j++)
{
var selectedIndex = random.Next(0, numberCollection.Count);
table[i, j] = numberCollection[selectedIndex];
numberCollection.RemoveAt(selectedIndex);
}
}
}
}A lényeg, hogy egy generált halmazból választjuk random módra az elemeket, nem pedig random elemekkel dolgozunk.
-
metrion
aktív tag
válasz Peter Kiss #5033 üzenetére
Szia!
Értékelem a segítséged, de én még nem járok ezen a szinten.
-
Karma
félisten
válasz Peter Kiss #5033 üzenetére
Én removeAt helyett jobban szeretem ezt a technikát.
“All nothings are not equal.”
-
trisztan94
őstag
válasz Peter Kiss #5033 üzenetére
Középiskolában egyest kaptam az ilyen megoldásokra, mert csak azt lehetett használni amit órán tanítottak (meg struktogramot kellett rajzolni, mert az nyelvfuggetlen), ezért is írtam neki le a dupla ciklusos módszert, amivel a beadandóját kell csinálni.
[ Szerkesztve ]
https://heureka-kreativ.hu
-
metrion
aktív tag
válasz trisztan94 #5036 üzenetére
Nem beadandóhoz kellett, hanem a vizsgámhoz
Ez volt a vizsgán és még ebből is hiányzik a sorcsere, számbekéréssel: [link]
-
-
trisztan94
őstag
válasz Peter Kiss #5038 üzenetére
Pont ez az, egy "neves" számítástechnikai suliba jártam, a térség legjobbja.
https://heureka-kreativ.hu
-
Karma
félisten
válasz Peter Kiss #5038 üzenetére
Csak sajnos nagy része, ami Guiddal operál, helytelen
“All nothings are not equal.”
-
kalorobi
csendes tag
Sziasztok!
Eladó egy pár C# programozással kapcsolatos könyv:
http://aprod.hu/hirdetes/bradley-l-jones-c-mesteri-szinten-konyv-ID1NB1z.html
http://aprod.hu/hirdetes/jason-price-c-adatbazis-programozas-ID1NAYT.htmlJuval Lövy: .Net komponensek programozása. (1.500 Ft)
Trey Nash: C# 2008 könnyen is lehet. (2.500 Ft)Hátha valakit érdekel.
-
trisztan94
őstag
válasz kalorobi #5041 üzenetére
Na mar miért venne az ember könyvet 2.500-ért egy 6 evvel ezelőtti C# verzióhoz, amikor akar olcsóbban is megkapod e-book formában, sot, van egy teljes C# könyv teljesen ingyen, jogtisztan az interweben?
Es ez miért nem off? Pontosan melyik része illik a topik témájához?
https://heureka-kreativ.hu
-
kalorobi
csendes tag
válasz trisztan94 #5042 üzenetére
Azért nem OFF mert programozással kapcsolatos. Igaz, hogy van az apró, de ott meg könyv kategória nincs.
Az meg hogy 6 éves könyv... Az objektumorientált programozás elvei nem változtak. A nyelvben vannak új dolgok, de az alapok maradtak... Ezek a könyvek, pedig pont erről szólnak.
Ha valakit érdekel, megnézi, alkudozik, megveszi. Ha nem érdekli, nem nézi meg.
-
Karma
félisten
válasz kalorobi #5044 üzenetére
Két dolog:
1) Van könyv kategória.
2) A topikban hirdetés alapszabályzatban tiltott, nem ilyen "nem érdekli nem nézi meg" kategória.[ Szerkesztve ]
“All nothings are not equal.”
-
válasz trisztan94 #5042 üzenetére
Mondjuk te is elolvashatnád a Trey Nash könyvet, van egy olyan érzésem...
-
trisztan94
őstag
válasz Peter Kiss #5047 üzenetére
Na jó, ezt most fejezzük be, mert kezd a tokom tele lenni veled.
[ Szerkesztve ]
https://heureka-kreativ.hu
-
thiclyoon
aktív tag
sziasztok,
van egy "programom", amit egy másik gépen csináltam, hazajöttem, de itt már nem működik..
"Additional information: Nem megfelelő a bemeneti karakterlánc formátuma."
ezt írja ki, miközben egy sort feldaraboltam string-ekké, és konvertálnám double-re
mi lehet a gond? -
fatal`
titán
válasz thiclyoon #5049 üzenetére
Másik gépen megegyezik az oprendszer területi beállíása? Doublenél szokott olyan gond lenni, hogy angol-szász területi beállítás esetén tizedespont, Magyarországon viszont tizedesvessző van, ezért nem tud parseolni. Illetve tud, csak amikor parseolsz, akkor be kell állítani a culturet.
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- iPhone topik
- Linux kezdőknek
- Kerékpárosok, bringások ide!
- ASUS ROG PG32UCDM: OLED csúcsmonitor tesztje
- Xiaomi 13T és 13T Pro - nincs tétlenkedés
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Politika
- Horgász topik
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Autós topik
- További aktív témák...
- LG UltraWide UltraGear 49GR85DC-B 3 Év LG Grancia !!! 240 Hz
- DJI Avata 2 Fly More Combo (Three Batteries)
- -59% HP EliteBook x360 830 G7:i5 10310U,16GB,256GB,vil.MAGYAR bilI.,IR,13.3" Touch,100%sRGB,WWAN 4G
- Sony PS5 (1116A) + 2TB Samsung SSD bővítés a gyári 825GB mellett, két karral + venom töltőhub
- HP Laptop 15-fd051ne - ÚJ - 15,6" FullHD IPS notebook - Core i5-1335U, 8GB, 512SSD, Win11
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Alpha Laptopszerviz Kft.
Város: Pécs